//
//  Student.h
//  OCLearning
//
//  Created by Caldremch on 2018/5/24.
//  Copyright © 2018年 Caldremch. All rights reserved.


/*
 在OC的类的定义中，同样有这几个关键字，并且苹果为他们每一个都配了一个“@”标示符（如@public）。在OC的类声明中，成员变量默认是受保护的，成员属性和方法不能用这几个关键字修饰。如果想变成私有，办法就是将属性或方法转移到类扩展中去。
 */

//

#import <Foundation/Foundation.h>
#import "StudentDelegate.h"
//@protocol是定义协议的关键字，告诉编译器，要开始声明协议了。类名+Delegate。
// <NSObject>是一个协议，
//在协议中，有几个方法的修饰词供我们使用：
//@required(表示以下方法必须实现)
//@optional(表示以下方法可以不实现)
//如果不使用任何关键字修饰，默认情况下是@required。

//@protocol StudentDelegate<NSObject>
//
//@required
//-(void)studentDelegateFunc;
//
//@optional
//-(void)cook;
//
//@end



//interface是“接口”的意思，OC使用@interface来声明一个类
@interface Student : NSObject

@property int id_;

@property(nonatomic,weak)id<StudentDelegate>delegate;

//，声明类的属性要使用@property关键字，而声明类的方法不需要使用任何关键字。

@property NSString *name;
@property int age;
@property float score;

//类所包含的函数
-(void) display;

+(void) params:(NSString*)name andAge:(int)age;

+(void) paramsTwo:(NSString*)name:(int)age;
//使用@end关键字结束类的声明


//类方法的创建：静态方法
//+(int)personWithA1:(float)a1 andA2:(NSString*)a2; //a1,a2分别代表两个参数
//
//对象方法的创建： 成员方法
//-(int)personWithA1:(float)a1 andA2:(NSString*)a2;


@end
